home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / M2Crypto / m2urllib.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  69 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import string
  5. import sys
  6. import urllib
  7. from urllib import *
  8. import SSL
  9. import httpslib
  10. DEFAULT_PROTOCOL = 'sslv23'
  11.  
  12. def open_https(self, url, data = None, ssl_context = None):
  13.     if ssl_context is not None and isinstance(ssl_context, SSL.Context):
  14.         self.ctx = ssl_context
  15.     else:
  16.         self.ctx = SSL.Context(DEFAULT_PROTOCOL)
  17.     user_passwd = None
  18.     if type(url) is type(''):
  19.         (host, selector) = splithost(url)
  20.         if host:
  21.             (user_passwd, host) = splituser(host)
  22.             host = unquote(host)
  23.         
  24.         realhost = host
  25.     else:
  26.         (host, selector) = url
  27.         (urltype, rest) = splittype(selector)
  28.         url = rest
  29.         user_passwd = None
  30.         if string.lower(urltype) != 'http':
  31.             realhost = None
  32.         else:
  33.             (realhost, rest) = splithost(rest)
  34.             if realhost:
  35.                 (user_passwd, realhost) = splituser(realhost)
  36.             
  37.             if user_passwd:
  38.                 selector = '%s://%s%s' % (urltype, realhost, rest)
  39.             
  40.     if not host:
  41.         raise IOError, ('http error', 'no host given')
  42.     
  43.     if user_passwd:
  44.         import base64 as base64
  45.         auth = string.strip(base64.encodestring(user_passwd))
  46.     else:
  47.         auth = None
  48.     h = httpslib.HTTPSConnection(host = host, ssl_context = self.ctx)
  49.     if data is not None:
  50.         h.putrequest('POST', selector)
  51.         h.putheader('Content-type', 'application/x-www-form-urlencoded')
  52.         h.putheader('Content-length', '%d' % len(data))
  53.     else:
  54.         h.putrequest('GET', selector)
  55.     if auth:
  56.         h.putheader('Authorization', 'Basic %s' % auth)
  57.     
  58.     for args in self.addheaders:
  59.         apply(h.putheader, args)
  60.     
  61.     h.endheaders()
  62.     if data is not None:
  63.         h.send(data + '\r\n')
  64.     
  65.     resp = h.getresponse()
  66.     fp = resp.fp
  67.     return urllib.addinfourl(fp, resp.msg, 'https:' + url)
  68.  
  69.